﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using DECOR.BL.BE;

namespace DECOR.DL.DALC
{
    public interface IParametroDALC
    {
        List<StockBE> getDataLotes(string pMatnr, decimal pCant, string pCentro, string pAlmacen, string pLote,
            string pNumPedido, string pPosNr, string pOrgVtas, string pCanalDist);
        
        void getDataLotes(string pMatnr, decimal pCant, string pCentro, string pAlmacen, string pLote,
            string pNumPedido, string pPosNr, string pOrgVtas, string pCanalDist,
            ref List<GenericBE> lstCentro, ref List<GenericBE> lstAlmacen, ref List<GenericBE> lstLote, ref string pCentroOp,
            ref string pAlmacenOp, ref string pLoteOp);

        void getDataDDL(ref List<GenericBE> lstZipCodes, ref List<GenericBE> lstAsesores,
            ref List<GenericBE> lstBloEnt, ref List<GenericBE> lstBloFac, ref List<GenericBE> lstCondExp,
            ref List<GenericBE> lstGrpCond, ref List<GenericBE> lstGrpVend, ref List<GenericBE> lstMotPed,
            ref List<GenericBE> lstOfVtas, ref List<GenericBE> lstSectores, ref List<GenericBE> lstTipoDoc, ref List<GenericBE> lstTipoVisita);
        
        void get_Param_PFact(ref List<GenericBE> lstDenom, ref List<GenericBE> lstMoneda,
            ref List<GenericBE> lstMotivoBloq, ref List<GenericBE> lstClaseDoc, ref List<GenericBE> lstRFACT,
            ref List<GenericBE> lstSTATU, ref List<GenericBE> lstTFPLU, ref List<GenericBE> lstCPag);

        /**************************************************************************************************/
        int getDecimales();
        decimal getIGV();
        decimal getTipoCambio();
        decimal getTipoCambio(DateTime pFecha); 
        List<GenericBE> getListaZipCode();
        ClienteBE getClienteReniec(string pDNI);

        string getParamValue(string key);
        bool esTipoOferta(string pCodTipoDoc);
        bool esTipoServicio(string pCodTipoDoc);

        bool esTipoPosCombo(string pCodTipoPos);
        bool esTipoPosKit(string pCodTipoPos);
        bool esTipoCabCombo(string pCodTipoPos);
        bool esTipoCabKit(string pCodTipoPos);
        bool esTipoSinLote(string pCodTipoDoc);

        bool esTipoXY(string pCodigo, string pConfigKey);

        List<TipoDocumentoBE> getTipoDocumentos();
        List<GenericBE> getDocVtaCot();
    }
}
